1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect;
18
19 import com.google.common.annotations.GwtCompatible;
20
21 import java.util.Map.Entry;
22
23 import javax.annotation.Nullable;
24
25
26
27
28
29
30
31 @GwtCompatible(emulated = true)
32 final class ImmutableMapValues<K, V> extends ImmutableCollection<V> {
33 private final ImmutableMap<K, V> map;
34
35 ImmutableMapValues(ImmutableMap<K, V> map) {
36 this.map = map;
37 }
38
39 @Override
40 public int size() {
41 return map.size();
42 }
43
44 @Override
45 public UnmodifiableIterator<V> iterator() {
46 return Maps.valueIterator(map.entrySet().iterator());
47 }
48
49 @Override
50 public boolean contains(@Nullable Object object) {
51 return object != null && Iterators.contains(iterator(), object);
52 }
53
54 @Override
55 boolean isPartialView() {
56 return true;
57 }
58
59 @Override
60 ImmutableList<V> createAsList() {
61 final ImmutableList<Entry<K, V>> entryList = map.entrySet().asList();
62 return new ImmutableAsList<V>() {
63 @Override
64 public V get(int index) {
65 return entryList.get(index).getValue();
66 }
67
68 @Override
69 ImmutableCollection<V> delegateCollection() {
70 return ImmutableMapValues.this;
71 }
72 };
73 }
74 }
75